
public class SameTree {
    /**
     * 给你两棵二叉树的根节点 p 和 q ，编写一个函数来检验这两棵树是否相同。
     * 如果两个树在结构上相同，并且节点具有相同的值，则认为它们是相同的。
     * @param p
     * @param q
     * @return
     * 解题思路: 不能单纯的用前序遍历 前序+中序也不行 因为有null值
     * 因此采用深度优先搜索 或者广度优先搜索（层次遍历）
     */
    public  boolean isSameTree(TreeNode p, TreeNode q) {
        if (p==null&&q==null)
            return true;
        else if (p==null&&q!=null){
            return false;
        }else if (p!=null&&q==null){
            return false;
        }else if (p.val != q.val){
            return false;
        }else {
            return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
        }



    }

    public static void main(String[] args) {

    }
}
